14.3 同期
タスクをできるだけ分割すればよいわけではない
負荷分散は完璧になる
プロセッサ間の調整にコストがかかる
正しさの保証
ヒープ(上のミューテータの扱うデータ構造)を壊さない
コレクタのもつデータ構造を壊さない
重複計算を避ける
移動型コレクタにおける正しさの保証の反例
2つのスレッドが同時にオブジェクトを同期せずにコピーした場合
良くて空間に無駄ができる
悪くて複製が矛盾する値をもつ
スレッドがマークスタックを共有している場合
仕事が失われないようにプッシュとポップを同期しないといけない
スレッド間の同期の時間的・空間的オーバーヘッド
同期が失敗したとき
再試行よりウェイトフリーに他の計算をするほうがまし
というくらい同期は重い
同期が必要になる頻度が最小になるような設計
ロックがほぼ競合しない
不可分操作がほぼ成功する
同期が省略できることもある
べき等な操作
マークビットのセット
同期コストより小さければ同期を省略できる
近代的並列コレクタの実装
よくわからない内容